<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Q Light Controller Plus - Web Interface</TITLE>
<SCRIPT SRC="utility.js" TYPE="text/javascript"></SCRIPT>
<link href="style.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY onLoad="replaceqrc()">

<H1>Web Interface</H1>

<P>By default, QLC+ includes a native web server to expose on traditional web browsers
some of the software features.<br>
It comes very handy when you need to run QLC+ on a device without a display (headless system)
either to work standalone or for remote controlling.<BR>
The web interface is not enabled by default but can be easily activated by running QLC+ with "-w" or "--web" option.
Please refer to the <A HREF="commandlineparameters.html">command line parameters</a> page of this documentation
to learn how to do it.
</P>

<P>
The web interface can be accessed from any modern web browser running on any device, such as a computer,
a tablet or a smartphone. Your browser needs to support the web sockets technology to communicate with QLC+,
and it is recommended to use Google Chrome.<br>
It is also possible to design custom web pages and access QLC+ functionalities via web API which are basically
strings formatted in a specific way and sent to QLC+ via websocket.<br>
A test page with the available APIs can be found <a href="https://www.qlcplus.org/Test_Web_API.html">here</a>.
</P>

<P>
To access the QLC+ web interface simply connect to this address:<BR>
<B>http://[IP address]:9999</B><BR>
<BR>
Where [IP address] is the IP address of the device you want to access via web.
For example: http://192.168.0.100:9999<BR>
The web interface consists in three pages:
<UL>
 <LI>Virtual Console</LI>
 <LI>Simple Desk</LI>
 <LI>Configuration</LI>
</UL>

<H2>Virtual Console page</H2>
This page is displayed by default when accessing the web interface address
and it represents the QLC+ Virtual Console.<BR>
If a project is loaded, this page will display the widgets previously created with QLC+,
otherwise it will just show an empty page.<BR>
It is possible to load a project with the <B>Load project</B> button placed on the
top left corner of the page. A window will show up, allowing you to choose a file from
the device you're using to control the device where QLC+ is running.<BR>
The project file will be transferred via web and loaded by QLC+.<BR>
To access the QLC+ configuration page, just click on the <B>Configuration</B> button.

<H2>Simple Desk page</H2>
<P>
This page is a simplified version of the Simple Desk that you can find in the QLC+ desktop version.
It displays DMX universes divided by pages, where each page shows 32 channels. You can switch between pages with
the left/right arrow buttons and select the current displayed universe with the drop down menu
on the top right of the page.<br>
It is also possible to reset a universe at once by pressing the reset button (gray X)<br>

<H3>DMX Keypad</H3>
When clicking on the "DMX Keypad" button in the Simple Desk top bar, you can jump to a new page
where a traditional DMX keypad is displayed.<br>
The keypad is useful to set a batch of channel values with a single command. Following a table
explaining the key commands that you can find on the right side of the pad.<br>
<br>
<TABLE BORDER=1 class="qlcTable">
 <TR>
  <TD><B>Key</B></TD><TD><B>Description</B></TD>
 </TR>
 <TR>
  <TD>AT</TD>
  <TD>sets a value for a specified DMX channel or group of channels (range).<br>
      Example: <B>13 AT 148</B> (sets channel 13 to value 148)
  </TD>
 </TR>
 <TR>
  <TD>THRU</TD>
  <TD>selects a range of DMX channels<br>
      Example: <B>3 THRU 15 AT 133</B> (sets channels 3 to 15 to value 133)
  </TD>
 </TR>
 <TR>
  <TD>FULL</TD>
  <TD>sets the maximum value (255) to the selected DMX channels or group of channels<br>
      Example: <B>18 FULL</B> (sets channel 18 to 255)<br>
               <B>1 THRU 10 FULL</B> (sets channels 1 to 10 to 255)
  </TD>
 </TR>
 <TR>
  <TD>ZERO</TD>
  <TD>sets the minimum value (0) to the selected DMX channels or group of channels<br>
      Example: <B>4 ZERO</B> (sets channel 4 to 0)
  </TD>
 </TR>
 <TR>
  <TD>BY</TD>
  <TD>sets a channels gap within a range<br>
      Example: <B>1 THRU 10 BY 2 AT 100</B> (sets channels 1, 3, 5, 7, and 9 to value 100)
  </TD>
 </TR>
 <TR>
  <TD>+%</TD>
  <TD>increases by given percent the current values of the channels<br>
      Example: <B>1 THRU 10 BY 2 +% 20</B> (increases by 20% the current values of the channels 1, 3, 5, 7, and 9)
  </TD>
 </TR>
 <TR>
  <TD>-%</TD>
  <TD>reduces by given percent the current values of the channels<br>
      Example: <B>1 THRU 10 BY 2 -% 20</B> (reduces by 20% the current values of the channels 1, 3, 5, 7, and 9)
  </TD>
 </TR>
</TABLE>
<BR>
Please keep in mind that:
<UL>
 <LI>Every command is sent to QLC+ only when pressing the ENTER button</LI>
 <LI>DMX addresses are contiguous between universes, so Universe 1 ranges from 1 to 512,
     Universe 2 from 513 to 1024 and so on</LI>
 <LI>You can manually write commands in the top text box once you learn the keypad commands syntax</LI>
</UL>


<H2>Configuration page</H2>
<P>
This page allows to remotely set the QLC+ configuration, divided in four areas:

<UL>
 <LI><B>Universes configuration</B>: Allows to set the inputs, outputs, feedback,
   profiles and passthrough mode for each QLC+ universe. This is basically the same
   functionality of the QLC+ input/output panel.<BR>
   Since a QLC+ project contains also the I/O information, most likely you won't have to
   manually configure it on this page, but just check if everything is correct.<BR>
 </LI>
 <LI><B>Audio configuration</B>: Allows to select the audio devices
   used for audio playback or audio input.<BR>
 </LI>
 <LI><B>User loaded fixtures</B>: Allows to remotely load a custom fixture to QLC+.<BR>
   When clicking on the <B>Load fixture</B> button, a window will show up, allowing you
   to choose a file from the device you're using to control the device where QLC+ is running.<BR>
   The fixture file will be transferred via web and loaded by QLC+.<BR>
   When adding new custom fixtures it is recommended to reload a project or either restart QLC+
   on the target device.<BR>
 </LI>
 <LI><B>Authorized users</B>: This section is available only when starting QLC+ with the "-wa" or "--web-auth" option.
   It enables basic HTTP authentication (no HTTPS or certificates involved).<br>
   When enabling this feature for the first time, you need to add at least an administrator, otherwise you will
   not be asked for any password when accessing the web interface.<br>
   Users can have the following access levels:
   <UL>
    <LI><B>Everything</B>: This is the access level for administrators. They can access every functionality of the web interface
    and add more authenticated users</LI>
    <LI><B>Virtual Console and Simple Desk</B>: a user with this access level can view the Virtual Console and Simple Desk page,
    but cannot access the Configuration page</LI>
    <LI><B>Only Virtual Console</B>: a user with this access level can view only the Virtual Console page,
    but cannot access the Simple Desk and the Configuration page</LI>
   </UL>
   An administrator can:
   <UL>
    <LI>Add more users by filling the Username and Password fields and then clicking on the "Add user" button</LI>
    <LI>Delete an existing user by clicking on the "Delete user" button</LI>
    <LI>Change the access level or password of an existing user and then click on the "Change" button</LI>
   </UL>

 </LI>
</UL>

Once the configuration has been set, it is possible to go back to the web interface
main page by clicking on the <B>Back</B> button, placed at the top left corner of the page.
</P>

<H2>Known limitations</H2>
<P>
The QLC+ web interface is still a work in progress feature and it has some known limitations you should
be aware of if you intend to use it.
<UL>
<LI>Speed Dial, XY Pad, and Animation widgets are not supported yet</LI>
<LI>Sliders with a Knob appearance are not supported yet</LI>
<LI>Sliders Click &amp; Go button is not supported yet</LI>
<LI>Frame enable state is not handled yet</LI>
<LI>Cue List crossfade sliders not supported yet</LI>
<LI>Cue List "Play/Stop + Pause" layout not supported yet</LI>
<LI>Cue List notes live editing is not handled yet</LI>
<LI>Virtual Console Grand Master is not handled yet</LI>
</UL>
</P>
</BODY>
</HTML>
